#include "common.h"

#include <assert.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

// 注意下面的两个头文件的引用路径，测试文件引用头文件的例子
#include "src/util/log.h"
#include "tests/common_test.h"

static inline void print_something(void){

    // 测试内联函数中出现的同名变量会怎么来处理
    // 实测中这个函数是没有被展开到原函数中的
    // TODO 内联函数的用法与宏的区别

    TEST_START_INFO;
    int a=5;
    printf("%d\n",a);
}

static void test_call_inline(void){
    TEST_START_INFO;
    
    print_something();

    int a=6;
    printf("%d\n",a);

    TEST_END_INFO;
}

static void test_call_inline2(void){
    TEST_START_INFO;

    int a=7;
    printf("%d\n",a);
    print_something();

    TEST_END_INFO;
}

static void test_call_inline3(void){
    TEST_START_INFO;

    print_something();
    print_something();

    TEST_END_INFO;
}

int main(int argc, char *argv[])
{
    (void)argc;
    (void)argv;

    test_call_inline();
    test_call_inline2();
    test_call_inline3();

    return 0;
};